/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Pe.edu.unmsm.SIASS.DAOImpl;

import Pe.edu.unmsm.SIASS.DAO.CapituloDAO;
import Pe.edu.unmsm.SIASS.Dominio.Alumno;
import Pe.edu.unmsm.SIASS.Dominio.Capitulo;
import Util.HibernateUtil;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import org.hibernate.Hibernate;
import org.hibernate.Query;
import org.hibernate.Session;

/**
 *
 * @author Fabrica
 */
public class CapituloDAOImpl implements CapituloDAO, Serializable{

    @Override
    public List<Capitulo> listaCapitulo(int idCurso) {
        List<Capitulo> lista = new ArrayList<Capitulo>();
        Session session = HibernateUtil.getSessionFactory().openSession();
        try {
            session.beginTransaction();
            Query query = session.createQuery("select c from Capitulo c, CursoPeriodo cp, Curso cu where c.cursoPeriodo=cp and"
                    + " cp.curso=cu and cu.idCurso="+idCurso);
            lista = (List<Capitulo>) query.list();
            for (Capitulo  cap : lista) {
                Hibernate.initialize(cap.getCursoPeriodo());
                Hibernate.initialize(cap.getCursoPeriodo().getCurso());
                Hibernate.initialize(cap.getCursoPeriodo().getPeriodo());
                Hibernate.initialize(cap.getCursoPeriodo().getGrupos());
            }
            session.beginTransaction().commit();
            session.close();
        } catch (Exception e) {
            session.beginTransaction().rollback();
            e.printStackTrace();
        }
        return lista;
    }
    
}
